<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="../common/css/reports.css">
<!--字体图标-->
<style >
@font-face {
    font-family: 'Open Sans';
    src: url('E:/00m2/common/css/fonts/opensans/OpenSans-Light.ttf')
        format('truetype');
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: 'Open Sans';
    src: url(E:/00m2/common/css/fonts/opensans/OpenSans-Regular.ttf')
        format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Open Sans';
    src: url('E:/00m2/common/css/fonts/opensans/OpenSans-Semibold.ttf')
        format('truetype');
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: 'FireMonIcons';
    src: url('E:/00m2/common/css/fonts/firemonicons/FireMonIcons.ttf')
        format('truetype'),
        url('E:/00m2/common/css/fonts/firemonicons/FireMonIcons.woff}')
        format('woff');
    font-weight: 600;
    font-style: normal;
}
</style>
</head>
<body>
    <!-- 头部 -->
    <div class="container-fluid">
            <header class="row">
                <div class="col-xs-12">
                    <h1>
                    <span >Report Name</span>
                    <small >March 31, 2016 1:44:02 PM UTC</small>
                  </h1>
                </div>
            </header>
            <div class="row">
                <div class="report__description col-xs-12">
                    <h2 >Displays a device's security rules overlaid with usage counts for a defined period of time.</h2>
                </div>
            </div>
    </div>
    <!-- 设备变更信息 -->
    <div class="container-fluid" >
      <!-- DEVICES -->
      <div class="row" >
        <div class="report__device-info col-xs-3 ">
          <div class="report__device-title-top">设备</div>
          <div class="report__device-title-bottom">
            <span >Test Device 1</span>
            <small>(ID: <span>devicetId</span>)</small>
          </div>
        </div>
        <div class="report__device-info col-xs-3">
          <div class="report__device-title-top" >ip</div>
          <div class="report__device-title-bottom">
            <span>Test Device 1</span>
          </div>
        </div>
        <div class="report__device-info col-xs-3">
          <div class="report__device-title-top" >生产商</div>
          <div class="report__device-title-bottom">
            <span >Vendor Info</span>
          </div>
        </div>
        <div class="report__device-info col-xs-3" >
          <div class="report__device-title-top">
            <span>上次修改时间</span>
          </div>
          <div class="report__device-title-bottom">
            <span>2018-09-14 18:01:46</span>
          </div>
        </div>
      </div>
    </div>
    <!-- 主体 -->
	<div class="container-fluid" role="main">
		<div class="row">
			<div class="col-xs-12">
			    <!-- 数量 -->
				<div class="panel panel-default">
				  <div class="panel-heading">
                    <h3 class="panel-title">设备变更概述</h3>
                  </div>
	              <div class="panel-body">
	                <div  class="panel panel-default">
	                  <div class="panel-body">
	                    <table class="fixed">
	                      <thead>
	                      <th width="10%">
	                        <span >策略</span>
	                      </th>
	                      <th width="10%">
	                        <span >地址对象</span>
	                      </th>
	                      <th width="10%">
	                        <span >服务对象</span>
	                      </th>
	                      <th width="10%">
	                        <span >NAT策略</span>
	                      </th>
	                      <th width="10%">
	                        <span >接口</span>
	                      </th>
	                      <th width="10%">
	                        <span >Zones</span>
	                      </th>
	                      <th width="10%">
	                        <span >路由</span>
	                      </th>
	                      </thead>
	                      <tbody>
		                      <td class="text-center">
		                          <span >${(ruleList?size)!0}</span>
		                      </td>
		                      <td class="text-center">
		                          <span >${(ipItemList?size)!0}</span>
		                      </td>
		                      <td class="text-center">
		                          <span>${(interfaceList?size)!0}</span>
		                      </td>
		                      <td class="text-center">
		                          <span >${(natRuleList?size)!0}</span>
		                      </td>
		                      <td class="text-center">
		                          <span>${(interfaceList?size)!0}</span>
		                      </td>
		                      <td class="text-center">
		                          <span>${(interfaceGroupList?size)!0}</span>
		                      </td>
		                      <td class="text-center">
		                          <span >${(routeList?size)!0}</span>
		                      </td>
	                      </tbody>
	                    </table>
	                  </div>
                    </div>
                    <div>
	                  <ul class="list-inline">
	                    <li>
	                      <span class="icon icon--warn modify-blue"></span>
	                      <span>修改</span>
	                    </li>
	                    <li>
	                      <span class="icon icon--plus-circle-closed add-green"></span>
	                      <span>新增</span>
	                    </li>
	                    <li>
	                      <span class="icon icon--minus-circle-closed remove-red"></span>
	                      <span>删除</span>
	                    </li>
	                  </ul>
	                </div>
	              </div>
                </div>
				<!--地址对象-->
				<div class="panel panel-default">
					<div class="panel-heading">
						<div class="pull-right">
							<a href="#top">Top</a>
						</div>
						<h3 class="panel-title">
							<span>地址对象变更数量:${((ipItemList?size)!0)+((ipGroupList?size)!0)}</span>
						</h3>
					</div>
					<div class="panel-body">
						<table class="no-stripe fixed">
							<thead>
								<tr>
									<th style="width: 20px;"></th>
									<th><span>名称</span></th>
									<th><span>成员</span></th>
									<th><span>地址</span></th>
									<th><span>描述</span></th>
								</tr>
							</thead>
							<tbody>
								<!-- 地址对象 -->
								<#list ipItemList! as ipItemDto>
									<tr class="${ipItemDto.deviceChangeType?lower_case}">
										<td><span class="${ipItemDto.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
										<td>
										   <div>
										      <span> <#if ipItemDto.name_premodified?? > class="icon icon--minus-circle-closed add-green"</#if> ></span>
										      <span <#if ipItemDto.type??> class="${ipItemDto.type!?lower_case?switch('host_ip','icon icon--host-object','any','icon icon--object-any',''+'icon icon--network-object')}" </#if> ></span>
											  <span>${ipItemDto.name!}</span>
										   </div>
										   <#if ipItemDto.name_premodified??>
										      <span class="icon icon--plus-circle-closed remove-red"></span>
										      <span>${ipItemDto.name_premodified!}</span>
										   </#if>
										</td>
										<td>
											<div>
												<span></span> <span></span> <span></span>
											</div>
										</td>
										<td>
										   <#if ipItemDto.type == "HOST_IP" >
								              <div>
								                 <#list ipItemDto.ip4Addresses! as hostIp>
								                 <span>${hostIp}</span>
								                 </#list>
								              </div>
								           <#elseif (ipItemDto.type!)=="SUBNET">                                    
								              <div>
								                <span>${ipItemDto.ip4Prefix! +"/"+ ipItemDto.ip4Length}</span>
								              </div>
								           <#elseif (ipItemDto.type!)=="RANGE">
								              <div>
								                <span>${ipItemDto.ip4Range.start +"-"+ ipItemDto.ip4Range.end}</span>
								              </div>
								           <#elseif (ipItemDto.type!)=="IP4WILDCARD">
								              <div>
								                <span>${ipItemDto.ip4Base +"/"+ ipItemDto.ip4WildCardMask}</span>
								              </div>
								           <#elseif (ipItemDto.type!)=="ANY4">
								              <div>
								                <span>Any</span>
								              </div>
								           </#if> 
										</td>
										<td>
										  <#if ipItemDto.description??>
											<div>
											  <span <#if ipItemDto.description_premodified?? > class="icon icon--minus-circle-closed add-green"</#if> ></span>
											  <span>${ipItemDto.description}</span>
											</div>
										  </#if> 
										  <#if ipItemDto.description_premodified??>
		                                        <div>
		                                           <span class="icon icon--plus-circle-closed remove-red"></span>
		                                          <span>${ipItemDto.description_premodified}</span>
		                                        </div>
	                                      </#if>
										</td>
									</tr>
									</#list>
									<!-- 地址组对象 -->
									<#list ipGroupList! as ipGroup>
									<tr class="${ipGroup.deviceChangeType?lower_case}">
										<td><span
											class="${ipGroup.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
										<td>
											<div>
											   <span <#if ipGroup.name_premodified?? > class="icon icon--minus-circle-closed add-green" </#if> ></span>
											   <span class="icon icon--object-group"></span>
											   <span>${ipGroup.name!}</span>
											</div>
											<#if ipGroup.name_premodified?? > 
											     <div>
											       <span class="icon icon--plus-circle-closed remove-red"></span>
                                                   <span>${ipGroup.name_premodified}</span>
											     </div>
											</#if>
										</td>
										<td>
										   <#list ipGroup.includeItemsDto! as includeItems>
										         <@ipItem item=includeItems />        
											</#list>
											<#list ipGroup.includeGroupNamesDto! as groupName>
											  <div>
												  <span class="${groupName.deviceChangeType!  ?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
		                                          <span class="icon icon--object-group"></span>
		                                          <span>${groupName.value}</span>
											  </div>
											</#list>
										</td>
										<td><div><div></div></div></td>
										<td>
										  <#if ipGroup.description??>
											<div>
												<span <#if ipGroup.description_premodified?? > class="icon icon--minus-circle-closed add-green" </#if> ></span>
	                                            <span>${ipGroup.description}</span>
											</div>
											</#if>
											<#if ipGroup.description_premodified??>
	                                         <div>
	                                            <span class="icon icon--plus-circle-closed remove-red"></span>
	                                            <span>${ipGroup.description_premodified}</span>
	                                         </div>
	                                        </#if>
	                                    </td>
									</tr>
								</#list>
							</tbody>
						</table>
					</div>
				</div>
				<!-- 服务对象 -->
				<div class="panel panel-default">
					<div class="panel-heading">
						<div class="pull-right">
							<a href="#top">Top</a>
						</div>
						<h3 class="panel-title">
							<span>服务对象变更:${(interfaceList?size)!0}条</span>
						</h3>
					</div>
					<div class="panel-body">
						<table class="no-stripe fixed">
							<thead>
								<tr>
									<th style="width: 20px;"></th>
									<th><span >名称</span></th>
									<th><span>成员</span></th>
									<th><span>协议/端口</span></th>
									<th><span>描述</span></th>
								</tr>
							</thead>
							<tbody>
							<!-- 服务 -->
							<#list serviceList! as service>
								<tr class="${service.deviceChangeType?lower_case}">
									<td><span class="${service.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
									<td ><div>
									    <span <#if service.name_premodified??> class="icon icon--minus-circle-closed remove-red"</#if>></span>
										<span class="${service.type!?lower_case?switch('service_icmp','icon icon--service-object-icmp',' '+'icon icon--service-object-other')}"></span>
										<span >${service.name}</span></div>
										<#if service.name_premodified??>
										<div>
                                        <span class="icon icon--plus-circle-closed add-green"></span>
                                        <span class="${service.type!?lower_case?switch('service_icmp','icon icon--service-object-icmp',' '+'icon icon--service-object-other')}"></span>
                                        <span >${service.name_premodified}</span>
                                        </div>
										</#if>
									</td>
									<!-- 服务组列 -->
									<td>
									   <#list service.includePredefinedServices! as preService>
										<div >
											<span class="${preService.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
											<span class="icon icon--object-any"></span>
											<span>${preService.name}</span>
										</div>
										</#list>
										<#list service.includeFilterServiceGroups! as group>
										<div>
	                                        <span class="${group.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                                        <span class="icon icon--object-group"></span>
	                                        <span>${group.name!}</span>
                                        </div>
										</#list>
										<#list service.includeFilterServicesDto! as inService>
										 <div>
                                          <span class="${inService.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
										  <#if inService.type=="SERVICE_TCP_UDP" && inService.protocolName=="TCP">
											  <span class="icon icon--service-object-tcp"></span>
											     <#list inService.dstPortValues! as port>
											         <span>${"TCP/" + port}<#sep>-</#sep></span>
											     </#list>
										  <#elseif inService.type=="SERVICE_TCP_UDP" && inService.protocolName=="UDP">
                                                 <span class="icon icon--service-object-udp"></span>
                                                 <#list inService.dstPortValues! as port>
                                                     <span>${"UDP/" + port}<#sep>-</#sep></span>
                                                 </#list>
                                          <#elseif inService.type=="SERVICE_ICMP">
                                                <span class="icon icon--service-object-icmp"></span>
                                                <span>${"ICMP/" + inService.icmpTypeNum}<#if inService.icmpCode! gt 0>${","+ inService.icmpCode} </#if></span>
                                          <#elseif inService.type=="SERVICE_OTHER">
                                                <span class="icon icon--service-object-other"></span>
                                                <span>${inService.protocolNum}</span>
                                          </#if>
                                         </div>
										</#list>
									</td>
									<!-- 服务列-->
									<td>
									   <#if service.type??>
										<div>
                                          <#if service.type=="SERVICE_TCP_UDP" && service.protocolName=="TCP">
<!--                                               <span class="icon icon--service-object-tcp"></span> -->
                                                 <#list service.dstPortValues! as port>
                                                     <span>${"TCP/" + port}<#sep>-</#sep></span>
                                                 </#list>
                                          <#elseif service.type=="SERVICE_TCP_UDP" && service.protocolName=="UDP">
<!--                                                  <span class="icon icon--service-object-udp"></span> -->
                                                 <#list service.dstPortValues! as port>
                                                     <span>${"UDP/" + port}<#sep>-</#sep></span>
                                                 </#list>
                                          <#elseif service.type=="SERVICE_ICMP">
<!--                                                 <span class="icon icon--service-object-icmp"></span> -->
                                                <span>${"ICMP/" + inService.icmpTypeNum} <#if service.icmpCode! gt 0>${","+ service.icmpCode} </#if></span>
                                          <#elseif service.type=="SERVICE_OTHER">
<!--                                                 <span class="icon icon--service-object-other"></span> -->
                                                <span>${service.protocolNum}</span>
                                          </#if>
                                         </div>
                                        </#if>
									</td>
									<td >
										<#if service.description??>
                                        <div>
                                          <span <#if service.description_premodified?? > class="icon icon--minus-circle-closed remove-red" </#if> ></span>
                                          <span>${service.description}</span>
                                        </div>
                                        </#if> 
                                        <#if service.description_premodified??>
                                         <div>
                                           <span class="icon icon--plus-circle-closed add-green"></span>
                                           <span>${service.description_premodified}</span>
                                         </div>
                                        </#if>
									</td>
								</tr>
							  </#list>
							</tbody>
						</table>
					</div>
				</div>
			    <!-- 接口-->
			    <div  class="panel panel-default">
                 <div class="panel-heading">
                     <div class="pull-right">
	                  <a href="#top" >Top</a>
	                 </div>
	                 <h3 class="panel-title"><span>接口变更数量:${(interfaceList?size)!0}</span></h3>
                 </div>
	              <div class="panel-body">
	                <table class="no-stripe fixed">
	                  <thead>
	                    <tr>
	                      <th style="width: 20px;"></th>
	                      <th><span >名字</span></th>
	                      <th><span >状态</span></th>
	                      <th><span >地址</span></th>
	                      <th><span >所在zone</span></th>
	                       <th><span >安全级别</span></th>
	                      <th><span>描述</span></th>
	                    </tr>
	                  </thead>
	                  <tbody>
	                  <#list interfaceList! as interface>
	                    <tr class="${interface.deviceChangeType?lower_case}">
	                      <td><span class="${interface.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
	                      <td >
	                        <#if interface.name??>
	                        <div>
	                        <span <#if interface.name_premodified??> class="icon icon--plus-circle-closed add-green" </#if>></span>
	                        <span>${interface.name!}</span>
	                        </div>
	                        </#if>
	                        <#if interface.name_premodified??>
	                          <div>
	                          <span class="icon icon--minus-circle-closed remove-red"></span>
	                          <span>${interface.name_premodified}</span>
	                          </div>
	                        </#if>
	                      </td>
	                      <td >
	                      <#if interface.shutdown??>
	                      <div>
	                        <span <#if interface.shutdown_premodified??> class="icon icon--plus-circle-closed add-green" </#if>></span>
	                        <span><#if interface.shutdown>关闭<#else>启用</#if></span>
	                       </div>
	                       </#if>
	                       <#if interface.shutdown_premodified??>
	                       <div>
	                        <span class="icon icon--minus-circle-closed remove-red"></span>
	                         <span><#if interface.shutdown_premodified>关闭<#else>启用</#if></span>
	                       </div>
	                       </#if>
	                      </td>
	                      <td >
	                        <#list interface.ipAddressesDto! as ipAddress>
		                        <div>
		                          <span class="${ipAddress.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
		                          <span>${ipAddress.ip4Address +"/"+ ipAddress.ip4MaskLength!}</span>
		                        </div>
	                        </#list>
	                      </td>
	                      <td>
	                      <#if interface.interfaceGroupName??>
	                        <div>
	                         <span <#if interface.interfaceGroupName_premodified??>class="icon icon--plus-circle-closed add-green"</#if>></span>
	                        <span>${interface.interfaceGroupName!}</span>
	                        </div>
	                      </#if>
	                      <#if interface.interfaceGroupName_premodified??>
	                        <div>
	                         <span class="icon icon--minus-circle-closed remove-red"></span>
	                         <span>${interface.interfaceGroupName_premodified!}</span>
	                        </div>
	                      </#if>
	                      </td>
	                      <td >
	                       <#if interface.securityLevel??>
		                        <div>
		                        <span <#if interface.securityLevel_premodified??>class="icon icon--plus-circle-closed add-green"</#if>></span>
		                        <span>${interface.securityLevel!}</span>
		                        </div>
	                       </#if>
	                       <#if interface.securityLevel_premodified??>
	                         <div>
	                          <span class="icon icon--minus-circle-closed  remove-red"></span>
	                          <span>${interface.securityLevel_premodified}</span>
	                         </div>
	                       </#if>
	                      </td>
	                      <td>
	                        <#if interface.description??>
		                      <div>
		                        <span <#if interface.description??>class="icon icon--plus-circle-closed add-green"</#if>></span>
		                        <span>${interface.description!}</span>
		                      </div>
	                        </#if>
	                        <#if interface.description_premodified??>
		                      <div>
		                        <span class="icon icon--minus-circle-closed remove-red"></span>
		                        <span>${interface.description_premodified!}</span>
		                      </div>
	                        </#if>
	                      </td>
	                    </tr>
	                    </#list>
	                  </tbody>
	                </table>
	              </div>
                </div>
			    <!-- zone -->
			    <div class="panel panel-default">
	              <div class="panel-heading">
	                <div class="pull-right"><a href="#top" >Top</a></div>
	                <h3 class="panel-title"><span>Zone变更数量:${(interfaceGroupList?size)!0}</span></h3>
	              </div>
	              <div class="panel-body">
	                <table class="no-stripe fixed">
	                  <thead>
	                  <tr>
	                    <th style="width: 20px;"></th>
	                    <th><span >名字</span></th>
	                    <th><span >接口</span></th>
	                    <th><span >描述</span></th>
	                  </tr>
	                  </thead>
	                  <tbody>
	                  <#list interfaceGroupList as interfaceGroup>
	                  <tr class="${interfaceGroup.deviceChangeType?lower_case}">
	                    <td><span class="${interfaceGroup.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
	                    <td >
	                      <#if interfaceGroup.name??>
	                        <div>
	                          <span <#if interfaceGroup.name_premodified??>class="icon icon--plus-circle-closed add-green"</#if> ></span>
	                          <span >${interfaceGroup.name}</span>
	                        </div>
	                      </#if>
	                      <#if interfaceGroup.name_premodified??>
	                        <div>
	                          <span class="icon icon--minus-circle-closed remove-red" ></span>
	                          <span >${interfaceGroup.name_premodified}</span>
	                      </div>
	                      </#if>
	                    </td>
	                    <td>
	                      <#list interfaceGroup.interfaceNames2! as deviceInterfaceDto>
	                       <div >
	                        <div>
	                         <span class="${deviceInterfaceDto.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                         <span>${deviceInterfaceDto.name!}</span>
	                        </div>
	                        <#list deviceInterfaceDto.ipAddresses! as ip>
	                         <div style="margin-left:20px;">${ip.ip4Address! +"/" +ip.ip4MaskLength!}</div>
	                        </#list>
	                       </div>
	                      </#list>
	                    </td>
	                    <td>
	                        <#if interfaceGroup.description??>
	                          <div>
	                            <span <#if interfaceGroup.description_premodified??>class="icon icon--plus-circle-closed add-green"</#if>></span>
	                            <span>${interfaceGroup.description}</span>
	                          </div>
	                        </#if>
	                        <#if interfaceGroup.description_premodified??>
	                          <div>
	                            <span class="icon icon--minus-circle-closed remove-red" ></span>
	                            <span>${interfaceGroup.description_premodified}</span>
	                          </div>
	                        </#if>
	                    </td>
	                   </tr>
	                  </#list>
	                 </tbody>
	                </table>
	              </div>
                </div>
			    <!-- 路由 -->
			    <div class="panel panel-default">
	              <div class="panel-heading">
	                <div class="pull-right"><a href="#top">Top</a></div>
	                <h3 class="panel-title"><span >路由 变更数量:${(routeList?size)!0}</span></h3>
	              </div>
	              <div class="panel-body">
	                <table class="no-stripe fixed">
	                  <thead>
	                    <tr>
	                      <th style="width: 20px;"></th>
	                      <th><span>类型</span></th>
	                      <th><span>目的IP</span></th>
	                      <th><span>掩码</span></th>
	                      <th><span>路由表</span></th>
	                      <th><span>网关</span></th>
	                      <th><span >出接口</span></th>
	                      <th><span >Next虚拟路由表</span></th>
	                    </tr>
	                  </thead>
	                  <tbody>
	                    <#list routeList! as route>
		                    <tr class="${route.deviceChangeType?lower_case}">
		                      <td><span class="${route.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
		                      <td >
		                        <div >
			                        <span <#if route.type_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
			                        <span>${route.type}</span>
		                        </div>
		                        <div>
			                        <#if route.type_premodified??>
				                        <span class="icon icon--minus-circle-closed remove-red"></span>
				                        <span>${route.type_premodified}</span>
			                        </#if>
		                        </div>
		                      </td>
		                      <td >
		                        <#if route.ip4Prefix??>
			                        <div>
				                        <span <#if route.ip4Prefix_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
				                        <span >${route.ip4Prefix}</span>
			                        </div>
		                        </#if>
		                        <#if route.ip4Prefix_premodified??>
		                        <div>
			                        <span class="icon icon--minus-circle-closed remove-red"></span>
			                        <span>${route.ip4Prefix_premodified}</span>
		                        <div>
		                        </#if>
		                      </td>
		                      <td >
		                        <#if route.maskLength??>
		                           <div>
		                                <span <#if route.maskLength_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
	                                    <span>${route.maskLength}</span>
		                           </div>
		                        </#if>
		                        <#if route.maskLength_premodified??>
		                           <div>
	                                    <span class="icon icon--minus-circle-closed remove-red"></span>
	                                    <span>${route.maskLength_premodified}</span>
	                               </div>
		                        </#if>
		                      </td>
		                      <td>
	                             <#if route.routingTableDataName??>
		                             <div>
		                                <span <#if route.routingTableDataName_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
		                                <span>${route.routingTableDataName}</span>
		                             </div>
	                             </#if>
	                             <#if route.routingTableDataName_premodified??>
		                             <div>
		                                <span class="icon icon--minus-circle-closed remove-red"></span>
		                                <span>${route.routingTableDataName_premodified}</span>
		                             </div>
	                             </#if>
		                      </td>
		                      <td>
		                        <#if route.ip4Gateway??>
		                           <div>
		                            <span <#if route.ip4Gateway_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
	                                <span>${route.ip4Gateway}</span>
		                           </div>
		                        </#if>
		                        <#if route.ip4Gateway_premodified??>
	                               <div>
	                                <span class="icon icon--minus-circle-closed remove-red"></span>
	                                <span>${route.ip4Gateway_premodified}</span>
	                               </div>
	                            </#if>
		                      </td>
		                      <td >
		                        <#if route.interfaceName??>
		                           <div>
			                            <span <#if route.interfaceName_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
		                                <span>${route.interfaceName}</span>
		                           </div>
		                        </#if>
		                        <#if route.interfaceName_premodified??>
	                               <div>
	                                    <span class="icon icon--minus-circle-closed remove-red"></span>
	                                    <span>${route.interfaceName_premodified}</span>
	                               </div>
	                            </#if>
		                      </td>
		                      <td >
		                        <#if route.routingTable??>
		                           <div>
		                             <span <#if route.routingTable_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
	                                 <span>${route.routingTable}</span>
		                           </div>
		                        </#if>
		                        <#if route.routingTable_premodified??>
	                               <div>
	                                 <span  class="icon icon--minus-circle-closed remove-red"></span>
	                                 <span>${route.routingTable_premodified}</span>
	                               </div>
	                            </#if>
		                      </td>
		                    </tr>
	                    </#list>
	                  </tbody>
	                </table>
	              </div>
                </div>
			    <!-- nat策略 -->
			    <div class="panel panel-default">
	              <div class="panel-heading">
	                <div class="pull-right"><a href="#top" >Top</a></div>
	                <h3 class="panel-title"><span >NAT策略变更数量:${(natRuleList?size)!0}</span></h3>
	              </div>
	              <div class="panel-body">
	                <table class="no-stripe fixed">
	                  <thead>
	                  <tr>
	                    <th style="width: 20px;"></th>
	                    <th><span>基本信息</span></th>
	                    <th><span >源</span></th>
	                    <th><span >目的</span></th>
	                    <th><span >服务/协议</span></th>
	                    <th><span >状态</span></th>
	                    <th><span>描述</span></th>
	                  </tr>
	                  </thead>
	                  <tbody>
	                    <#list natRuleList! as natRule >
		                  <tr class="${natRule.deviceChangeType?lower_case}">
		                    <td><span class="${natRule.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
		                    <td>
		                      <div>
		                        <span class="rule-property-heading">策略类型:</span>
		                        <span >${natRule.deviceType!}</span>
		                      </div>
		                      <div >
		                        <span class="rule-property-heading">策略名字:</span>
		                        <span >${natRule.name!}</span>
		                      </div>
		                    </td>
		                    <!-- 源 -->
		                    <td>
		                      <div >
		                        <div class="rule-property-heading">源域</div>
		                          <#if (natRule.inInterfaceGroupRefs!?size > 0)>
			                          <#list natRule.inInterfaceGroupRefs! as ref >
				                          <div >
				                            <span class="${ref.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
				                            <span>${ref.value}</span>
				                          </div>
			                          </#list>
			                      <#else>
		                              <div>ANY</div>
	                              </#if>
		                      </div>
		                      <!-- 源地址转换 -->
                              <#if (natRule.natClauseDto.preSrcIPItemsDto!?size >0) && (natRule.natClauseDto.postSrcIPItemsDto!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">源地址转换前</div>
                                    <#list natRule.natClauseDto.preSrcIPItemsDto as preDst>
                                       <@ipItem item=preDst />    
                                    </#list>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">源地址转换后</div>
                                    <#list natRule.natClauseDto.postSrcIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              <#elseif (natRule.natClauseDto.preSrcIPItemsDto!?size <=0) && (natRule.natClauseDto.postSrcIPItemsDto!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">源地址转换前</div>
                                    <div>Any</div>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">源地址转换后</div>
                                    <#list natRule.natClauseDto.postSrcIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              <#elseif natRule.natClauseDto.useEifAsPostSrcIp>
                                  <div>
                                    <div class="rule-property-heading">源地址转换前</div>
                                    <#if (natRule.natClauseDto.preDstIPItemsDto!?size <=0)>
                                        <div>Any</div>
                                    <#else>
                                        <#list natRule.natClauseDto.preDstIPItemsDto as preDst>
                                            <@ipItem item=preDst />    
                                        </#list>
                                    </#if>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">源地址转换后</div>
                                    <#list natRule.outInterfaceGroupRefs! as ref >
                                      <div>
                                        <span>${ref.value}</span>
                                      </div>
                                    </#list>
                                  </div>
                              </#if>
                            <!-- 源端口转换 -->
                            <#if ((natRule.natClauseDto.preSrcPortSpecDto!?size >0) || (natRule.natClauseDto.preSrcPredefinedPorts!?size >0)) && ((natRule.natClauseDto.postSrcPortSpecDto!?size >0) || (natRule.natClauseDto.postSrcPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">源端口转换前</div>
                                    <@natRulePort nat=natRule.natClauseDto />
                                </div>
                                <div>
                                    <div class="rule-property-heading">源端口转换后</div>
                                    <@natRulePort nat=natRule.natClauseDto />
                                </div>
                            </#if>
                            <#if ((natRule.natClauseDto.preSrcPortSpecDto!?size <=0) && (natRule.natClauseDto.preSrcPredefinedPorts!?size <=0)) && ((natRule.natClauseDto.postSrcPortSpecDto!?size >0) || (natRule.natClauseDto.postSrcPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">源端口转换前</div>
                                    <div>Any</div>
                                </div>
                                <div>
                                    <div class="rule-property-heading">源端口转换后</div>
                                    <@natRulePort nat=natRule.natClauseDto />
                                </div>
                            </#if>
		                    </td>
		                    <!-- 目的 -->
		                    <td>
		                      <div>
                                <div class="rule-property-heading">目的域</div>
                                <#if (natRule.outInterfaceGroupRefs!?size>0)>
                                    <#list natRule.outInterfaceGroupRefs! as ref >
	                                  <div>
	                                    <span class="${ref.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                                    <span>${ref.value}</span>
	                                  </div>
                                    </#list>
                                <#else>
                                    <div>ANY</div>
                                </#if>
                              </div>
                              <!-- 地址转换 -->
                              <#if (natRule.natClauseDto.preDstIPItemsDto!?size >0) && (natRule.natClauseDto.postDstIPItemsDto!?size >0) >
	                              <div>
	                                <div class="rule-property-heading">目的地址转换前</div>
	                                <#list natRule.natClauseDto.preDstIPItemsDto as preDst>
                                       <@ipItem item=preDst />    
                                    </#list>
	                              </div>
	                              <div>
                                    <div class="rule-property-heading">目的地址转换后</div>
                                    <#list natRule.natClauseDto.postDstIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              <#elseif (natRule.natClauseDto.preDstIPItemsDto!?size <=0) && (natRule.natClauseDto.postDstIPItemsDto!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">目的地址转换前</div>
                                    <div>Any</div>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">目的地址转换后</div>
                                    <#list natRule.natClauseDto.postDstIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              </#if>
                            <!-- 目的端口转换 -->
                            <#if ((natRule.natClauseDto.preDstPortSpecDto!?size >0) || (natRule.natClauseDto.preDstPredefinedPorts!?size >0)) && ((natRule.natClauseDto.postDstPortSpecDto!?size >0) || (natRule.natClauseDto.postDstPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">目的端口转换前</div>
                                    <@natRulePort nat=natRule.natClauseDto />
                                </div>
                                <div>
                                    <div class="rule-property-heading">目的端口转换后</div>
                                    <@natRulePort nat=natRule.natClauseDto />
                                </div>
                            </#if>
                            <#if ((natRule.natClauseDto.preDstPortSpecDto!?size <=0) && (natRule.natClauseDto.preDstPredefinedPorts!?size <=0)) && ((natRule.natClauseDto.postDstPortSpecDto!?size >0) || (natRule.natClauseDto.postDstPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">目的端口转换前</div>
                                    <div>Any</div>
                                </div>
                                <div>
                                    <div class="rule-property-heading">目的端口转换后</div>
                                    <@natRulePort nat=natRule.natClauseDto />
                                </div>
                            </#if>
		                    </td>
		                    <!-- 服务 -->
		                    <td>
		                      <div class="rule-property-heading">服务</div>
                              <#if ((natRule.matchClauseDto.predefinedServices)!?size>0) >
                                  <#list natRule.matchClauseDto.predefinedServices! as preService>
                                      <div >
                                        <span class="${preService.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
                                        <span class="icon icon--service-object-other"></span>
                                        <span>${preService.name}</span>
                                      </div>
                                  </#list>
                              <#elseif (natRule.serviceGroupDto!?size>0)>
                                  <#list natRule.serviceGroupDto! as serviceGroup >
                                      <div>
                                      <span class="${serviceGroup.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
                                       <span class="icon icon--object-group"></span>
                                      <span>${serviceGroup.name}</span>
                                      </div>
                                  </#list>
                              <#elseif (natRule.serviceObject!?size>0)>
                                  <#list natRule.serviceObject! as service>
                                      <div>
                                       <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
                                       <span class="icon icon--object-any"></span>
                                       <span>${service.name!}</span>
                                      </div>
                                  </#list>
                               <#else>
                                  <div>Any</div>
                               </#if>
		                    </td>
		                    <!-- 动作 -->
		                    <td>
		                      <#if natRule.action??>
                                <div>
                                    <span <#if natRule.action_premodified??>class="icon icon--plus-circle-closed add-green"</#if>></span>
                                    <span>${natRule.action}</span>
                                </div>
                              </#if>
                              <#if natRule.action_premodified??>
                                <div>
                                    <span class="icon icon--minus-circle-closed remove-red"></span>
                                    <span>${natRule.action_premodified}</span>
                                </div>
                              </#if>
		                    </td>
		                    <!-- 描述 -->
		                    <td>
		                      <#if natRule.description??>
                                <div>
                                    <span <#if natRule.description_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
                                    <span >${natRule.description}</span>
                                </div>
                              </#if>
                              <#if natRule.description_premodified??>
                                <div>
                                    <span class="icon icon--minus-circle-closed remove-red"></span>
                                    <span >${natRule.description_premodified}</span>
                                </div>
                              </#if>
		                    </td>
		                  </tr>
		                 </#list> 
	                  </tbody>
	                </table>
	              </div>
               </div>
			    <!-- 策略 -->
			    <div class="panel panel-default">
	              <div class="panel-heading">
	                <div class="pull-right"><a href="#top" >Top</a></div>
	                <h3 class="panel-title"><span >策略变更数量:${(ruleList?size)!0}</span></h3>
	              </div>
	              <div class="panel-body">
	                <table class="no-stripe fixed">
	                  <thead>
	                    <tr>
	                      <th style="width: 35px;"></th>
	                      <th><span>基本信息</span></th>
	                      <th><span>源</span></th>
	                      <th><span>目的</span></th>
	                      <th><span>服务/协议</span></th>
	                      <th><span>状态</span></th>
	                      <th><span>描述</span></th>
	                    </tr>
	                  </thead>
	                  <tbody>
	                  <#list ruleList! as rule>
	                    <tr class="${rule.deviceChangeType?lower_case}">
	                      <td><span class="${rule.deviceChangeType?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span></td>
	                      <!-- Rule Summary -->
	                      <td >
	                        <div>
	                          <div><span class="rule-property-heading">策略名字:</span></div>
	                          <div><span >${rule.name!}</span></div>
	                        </div>
	                        <div>
	                          <span class="rule-property-heading">类型:</span>
	                          <span>${rule.deviceType!}</span>
	                        </div>
	                        <div >
	                          <span class="rule-property-heading">id:</span>
	                          <span>${rule.ruleId!}</span>
	                        </div>
	                      </td>
	                      <!--  源-->
	                      <td>
	                        <div >
	                          <div class="rule-property-heading">源域</div>
	                          <#if (rule.inInterfaceGroupRefs!?size>0)>
	                          <#list rule.inInterfaceGroupRefs! as ref >
	                          <div >
	                            <span class="${ref.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                            <span>${ref.value}</span>
	                          </div>
	                          </#list>
	                          <#else>
	                           <div>ANY</div>
	                          </#if>
	                        </div>
	                        <!-- 源地址 -->
	                        <#if rule.matchClauseDto??>
	                         <div >
	                          <hr class="hr--tight"/>
	                          <div >
	                           <div class="rule-property-heading">源地址</div>
	                           <#if (rule.matchClauseDto.srcIpGroupDto!?size>0) >
	                            <#list rule.matchClauseDto.srcIpGroupDto as srcGroup>
	                              <div >
	                                <span class="${srcGroup.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                                <span class="icon icon--object-group"></span>
	                                <span>${srcGroup.name}</span>
	                              </div>
	                            </#list>
	                           </#if>
	                           <#if (rule.srcIpItem!?size>0) >
	                            <#list rule.matchClauseDto.srcIpItem! as srcIpItem>
	                              <div >
	                                <span class="${srcIpItem.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                                <span class="icon icon--host-object" data-name="${srcIpItem.type!'any'?lower_case}"></span>
	                                <span>${srcIpItem.name}</span>
	                              </div>
	                            </#list>
	                           </#if>
	                           <#if ((rule.matchClauseDto.srcIpGroupDto!)?size lt 1) && ((rule.matchClauseDto.srcIpItem!)?size lt 1) >
                                     <div>Any</div>
	                           </#if>
	                          </div>
	                         </div>
	                        </#if>
	                        <!-- nat源 -->
	                        <!-- 源地址转换 -->
	                        <#if rule.natClauseDto??> 
                              <#if ((rule.natClauseDto.preSrcIPItemsDto)!?size >0) && ((rule.natClauseDto.postSrcIPItemsDto)!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">源地址转换前</div>
                                    <#list rule.natClauseDto.preSrcIPItemsDto as preDst>
                                       <@ipItem item=preDst />    
                                    </#list>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">源地址转换后</div>
                                    <#list rule.natClauseDto.postSrcIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              <#elseif (rule.natClauseDto.preSrcIPItemsDto!?size <=0) && (rule.natClauseDto.postSrcIPItemsDto!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">源地址转换前</div>
                                    <div>Any</div>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">源地址转换后</div>
                                    <#list rule.natClauseDto.postSrcIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              <#elseif rule.natClauseDto.useEifAsPostSrcIp>
                                  <div>
                                    <div class="rule-property-heading">源地址转换前</div>
                                    <#if (rule.natClauseDto.preDstIPItemsDto!?size <=0)>
                                        <div>Any</div>
                                    <#else>
                                        <#list rule.natClauseDto.preDstIPItemsDto as preDst>
                                            <@ipItem item=preDst />    
                                        </#list>
                                    </#if>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">源地址转换后</div>
                                    <#list rule.outInterfaceGroupRefs! as ref >
                                      <div>
                                        <span>${ref.value}</span>
                                      </div>
                                    </#list>
                                  </div>
                              </#if>
                              <!-- 源端口转换 -->
                              <#if ((rule.natClauseDto.preSrcPortSpecDto!?size >0) || (rule.natClauseDto.preSrcPredefinedPorts!?size >0)) && ((rule.natClauseDto.postSrcPortSpecDto!?size >0) || (rule.natClauseDto.postSrcPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">源端口转换前</div>
                                    <@natRulePort nat=rule.natClauseDto />
                                </div>
                                <div>
                                    <div class="rule-property-heading">源端口转换后</div>
                                    <@natRulePort nat=rule.natClauseDto />
                                </div>
                              </#if>
                              <#if ((rule.natClauseDto.preSrcPortSpecDto!?size <=0) && (rule.natClauseDto.preSrcPredefinedPorts!?size <=0)) && ((rule.natClauseDto.postSrcPortSpecDto!?size >0) || (rule.natClauseDto.postSrcPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">源端口转换前</div>
                                    <div>Any</div>
                                </div>
                                <div>
                                    <div class="rule-property-heading">源端口转换后</div>
                                    <@natRulePort nat=rule.natClauseDto />
                                </div>
                              </#if> 
                            </#if>      
	                      </td>
	
	                      <!-- 目的 -->
	                      <td>
	                        <div >
	                          <div class="rule-property-heading">目的域</div>
	                           <#if (rule.outInterfaceGroupRefs!?size>0)>
	                           <#list rule.outInterfaceGroupRefs! as ref >
	                           <div >
	                            <span class="${ref.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
	                            <span>${ref.value}</span>
	                           </div>
	                          </#list>
	                          <#else>
	                           <div>ANY</div>
	                          </#if>
	                        </div>
	                        <#if rule.matchClauseDto??>
	                         <div >
	                            <hr  class="hr--tight"/>
	                            <div class="rule-property-heading">目的地址</div>
		                        <#if (rule.matchClauseDto.dstIpGroupDto!?size>0)>
		                            <#list rule.matchClauseDto.dstIpGroupDto as dstGroup >
		                              <div>
		                                <span class="${dstGroup.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
		                                <span class="icon icon--object-group"></span>
		                                <span >${dstGroup.name}</span>
		                              </div>
		                        </#list>
		                        </#if>
		                        <#if (rule.matchClauseDto.dstIpDto!?size>0)>
		                            <#list rule.matchClauseDto.dstIpDto as dstIpItem >
		                                  <@ipItem item=dstIpItem /> 
		                            </#list>
		                        </#if>
		                        <#if ((rule.matchClauseDto.dstIpGroupDto!)?size lt 1) && ((rule.matchClauseDto.dstIpDto!)?size lt 1) >
                                    <div>ANY</div>
                                </#if>
		                      </div>
		                    </#if>
	                        <!-- nat目的地址 -->
	                        <!-- 地址转换 -->
	                        <#if rule.natClauseDto??>
                              <#if (rule.natClauseDto.preDstIPItemsDto!?size >0) && (rule.natClauseDto.postDstIPItemsDto!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">目的地址转换前</div>
                                    <#list rule.natClauseDto.preDstIPItemsDto as preDst>
                                       <@ipItem item=preDst />    
                                    </#list>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">目的地址转换后</div>
                                    <#list rule.natClauseDto.postDstIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              <#elseif (rule.natClauseDto.preDstIPItemsDto!?size <=0) && (rule.natClauseDto.postDstIPItemsDto!?size >0) >
                                  <div>
                                    <div class="rule-property-heading">目的地址转换前</div>
                                    <div>Any</div>
                                  </div>
                                  <div>
                                    <div class="rule-property-heading">目的地址转换后</div>
                                    <#list rule.natClauseDto.postDstIPItemsDto as postDst>
                                       <@ipItem item=postDst />        
                                    </#list>
                                  </div>
                              </#if>
                            <!-- 目的端口转换 -->
                            <#if ((rule.natClauseDto.preDstPortSpecDto!?size >0) || (rule.natClauseDto.preDstPredefinedPorts!?size >0)) && ((rule.natClauseDto.postDstPortSpecDto!?size >0) || (rule.natClauseDto.postDstPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">目的端口转换前</div>
                                    <@natRulePort nat=rule.natClauseDto />
                                </div>
                                <div>
                                    <div class="rule-property-heading">目的端口转换后</div>
                                    <@natRulePort nat=rule.natClauseDto />
                                </div>
                            </#if>
                            <#if ((rule.natClauseDto.preDstPortSpecDto!?size <=0) && (rule.natClauseDto.preDstPredefinedPorts!?size <=0)) && ((rule.natClauseDto.postDstPortSpecDto!?size >0) || (rule.natClauseDto.postDstPredefinedPorts!?size >0))>
                                <div>
                                    <div class="rule-property-heading">目的端口转换前</div>
                                    <div>Any</div>
                                </div>
                                <div>
                                    <div class="rule-property-heading">目的端口转换后</div>
                                    <@natRulePort nat=rule.natClauseDto />
                                </div>
                            </#if>
                           </#if> 
	                      </td>
	
	                      <!-- 服务/协议 -->
	                      <td>
	                        <div >
	                          <div class="rule-property-heading">服务</div>
	                          <#if ((rule.matchClauseDto.predefinedServices)!?size>0) >
		                          <#list rule.matchClauseDto.predefinedServices! as preService>
			                          <div >
			                            <span class="${preService.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
			                            <span class="icon icon--object-any"></span>
			                            <span>${preService.name}</span>
			                          </div>
		                          </#list>
		                      </#if>
		                      <#if ((rule.matchClauseDto.serviceGroupDto)!?size>0)>
		                          <#list rule.matchClauseDto.serviceGroupDto! as serviceGroup >
			                          <div>
			                          <span class="${serviceGroup.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
			                           <span class="icon icon--object-group"></span>
			                          <span>${serviceGroup.name}</span>
			                          </div>
		                          </#list>
		                      </#if>
		                      <#if ((rule.matchClauseDto.serviceObject)!?size>0)>
		                          <#list rule.matchClauseDto.serviceObject! as service>
			                          <div>
			                           <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
			                           <span class="icon icon--object-any"></span>
			                           <span>${service.name!}</span>
			                          </div>
		                          </#list>
		                      </#if>
		                      <#if ((rule.matchClauseDto.predefinedServices)!?size==0) && ((rule.matchClauseDto.serviceGroupDto)!?size==0) && ((rule.matchClauseDto.serviceObject)!?size==0)>
		                          <div>Any</div>
	                           </#if>
	                        </div>
	                      </td>
	
	                      <!-- Action -->
	                      <td>
	                        <#if rule.action??>
		                        <div>
			                        <span <#if rule.action_premodified??>class="icon icon--plus-circle-closed add-green"</#if>></span>
			                        <span>${rule.action}</span>
		                        </div>
	                        </#if>
	                        <#if rule.action_premodified??>
		                        <div>
			                        <span class="icon icon--minus-circle-closed remove-red"></span>
			                        <span>${rule.action_premodified}</span>
		                        </div>
	                        </#if>
	                      </td>
	                      <!-- 描述 -->
	                      <td >
	                        <#if rule.description??>
		                        <div>
			                        <span <#if rule.description_premodified??> class="icon icon--plus-circle-closed add-green"</#if>></span>
			                        <span >${rule.description}</span>
		                        </div>
	                        </#if>
	                        <#if rule.description_premodified??>
		                        <div>
			                        <span class="icon icon--minus-circle-closed remove-red"></span>
			                        <span >${rule.description_premodified}</span>
		                        </div>
	                        </#if>
	                      </td>
	                    </tr>
	                   </#list>
	                  </tbody>
	                </table>
	              </div>
	           </div>
			    
			</div>
		</div>
	</div>
</body>
</html>
<#-- 地址处理 -->
<#macro ipItem item>
     <#if item.type??>
       <#if item.type == "HOST_IP" >
          <div>
             <#list item.ip4Addresses! as hostIp>
             <span class="${item.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span> 
             <span class="icon icon--host-object"></span>
             <span>${hostIp}</span>
             </#list>
          </div>
       <#elseif (item.type!)=="SUBNET">                                    
          <div>
            <span class="${item.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span> 
            <span class="icon icon--network-object"></span>
            <span>${item.ip4Prefix! +"/"+ item.ip4Length}</span>
          </div>
       <#elseif (item.type!)=="RANGE">
          <div>
            <span class="${item.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
            <span class="icon icon--network-object"></span>
            <span>${item.ip4Range.start +"-"+ item.ip4Range.end}</span>
          </div>
       <#elseif (item.type!)=="IP4WILDCARD">
          <div>
            <span class="${item.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','updated', 'icon icon--warn modify-blue','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
            <span class="icon icon--network-object"></span>
            <span>${item.ip4Base +"-"+ item.ip4WildCardMask}</span>
          </div>
       <#elseif (item.type!)=="ANY4">
          <div>
            <span>Any</span>
          </div>
       </#if> 
     </#if>         
</#macro>
<#-- nat端口处理 -->
<#macro natRulePort nat>
    <#list nat.preSrcPredefinedPorts! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <span>${service.name}</span>
       </div>
    </#list>
    <#list nat.postSrcPredefinedPorts! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <span>${service.name}</span>
       </div>
    </#list>
    <#list nat.preDstPredefinedPorts! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <span>${service.name}</span>
       </div>
    </#list>
    <#list nat.postDstPredefinedPorts! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <span>${service.name}</span>
       </div>
    </#list>
    <#list nat.preSrcPortSpecDto! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <#list service.portValues as port>
            <span>${port}<#sep>,</#sep></span>
          </#list>
       </div>
    </#list>
    <#list nat.postSrcPortSpecDto! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <#list service.portValues as port>
            <span>${port}<#sep>,</#sep></span>
          </#list>
       </div>
    </#list>
    <#list nat.preDstPortSpecDto! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <#list service.portValues as port>
            <span>${port}<#sep>,</#sep></span>
          </#list>
       </div>
    </#list>
    <#list nat.postDstPortSpecDto! as service>
       <div >
          <span class="${service.deviceChangeType!?lower_case?switch('added', 'icon icon--plus-circle-closed add-green','deleted', 'icon icon--minus-circle-closed remove-red',' '+' ')}"></span>
          <span class="icon icon--object-any"></span>
          <#list service.portValues as port>
            <span>${port}<#sep>,</#sep></span>
          </#list>
       </div>
    </#list>
</#macro>

